<?php 
/**create by fu
 *
 * 22行返回的是数组  可以在 database.php 配置文件中定义数据集返回类型为 collection
 * 将不需要 使用 collection()硬性处理为数据集  才能使用hidden()模型方法
 */
namespace app\api\controller\v1;

use app\api\validate\Count;
use app\api\validate\IDMustBePostiveInt;
use app\api\model\Product as ProductModel;
use app\lib\exception\ProductException;
/**
 * 
 */
class Product 
{
	
	public function getRecent($count=15)
	{
		(new Count())->goCheck();

		$products = ProductModel::getMostRecent($count);
 
		$products = $products->hidden(["summary"]);
        //当database返回为数据集后不能简单判空了，要使用模型自带的检查空数据集的方法
        if($products->isEmpty())throw new ProductException();
		return $products;
	}

	public function getAllInCategory($id)
	{
		(new IDMustBePostiveInt())->goCheck();
		$products = ProductModel::getProductsByCategoryID($id);
		
        if($products->isEmpty())throw new ProductException();

		$products = $products->hidden(["summary"]);
		return $products;

	}

	//获取商品详情
	public function getOne($id)
	{
		(new IDMustBePostiveInt())->goCheck();
		$product = ProductModel::getProductDetail($id);

		if(!$product)throw new ProductException();

		$product = $product->hidden(["summary"]);
 
		return $product;
	}
}



 ?>